<?php
/**
 * Created by PhpStorm.
 * User: longli
 * VX: isa1589518286
 * Date: 2021/08/18
 * Time: 21:03
 * @link http://www.lmterp.cn
 */

namespace app\swoole\timer;

use think\Console;

/**
 * 半小时执行一次
 * Class HalfHourTimer
 * @package app\swoole\timer
 */
class HalfHourTimer extends BaseTimer
{
    public function run()
    {
        echo "\t\t每三十分钟执行  " . date('Y-m-d H:i:s') . "\n";
        // 待处理的订单
        $this->lockStock(10);
    }

    /**
     * 分仓占用库存
     * @param int $day 处理多少天前的订单
     * @date 2021/08/18
     * @author longli
     */
    private function lockStock($day = 1)
    {
        $day = -abs($day);
        $start = date('Y-m-d', strtotime("{$day}day"));
        Console::call('order_check', ["--start_date={$start}"]); // 检查订单
        Console::call('order_warehouse', ["--start_date={$start}"]); // 订单分仓
        Console::call('lock_stock', ['--action=order', "--type=lock", "--start_date={$start}"]); // 占用库存
        Console::call('order_channel', ["--start_date={$start}"]); // 选择渠道
    }
}